package com.sdhs.costcontrol.domain;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sdhs.common.annotation.Excel;
import lombok.Data;
import com.sdhs.common.core.domain.BaseEntity;

import java.math.BigDecimal;

/**
 * 变更清单管理对象 gc_control_change_manage_list
 *
 * @author andong
 * @date 2025-03-29
 */
@Data
public class GcControlChangeManageList extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 变更清单管理主键 */
    private Long id;

    /** 关联项目id */
    @Excel(name = "关联项目id")
    private Long projectId;

    /** 清单id */
    @Excel(name = "清单id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long manageId;

    /** 关联变更id */
    @Excel(name = "关联变更id")
    private Long changeId;

    /** 子目号 */
    @Excel(name = "子目号")
    private String subheadingsNumber;

    /** 子母名称 */
    @Excel(name = "子母名称")
    private String subheadingsName;

    /** 父节点子目号 */
    @Excel(name = "父节点子目号")
    private String parentSubheadings;

    /** 品牌 */
    @Excel(name = "品牌")
    private String brandName;

    /** 型号 */
    @Excel(name = "型号")
    private String modelNumber;

    /** 单位 */
    @Excel(name = "单位")
    private String unit;

    /** 数量 */
    @Excel(name = "数量")
    private String quantity;

    /** 销售单价(元) */
    @Excel(name = "销售单价(元)")
    private String salePrice;

    /** 标前成本价(元) */
    @Excel(name = "标前成本价(元)")
    private String bidCostPrice;

    /** 销售合价(元) */
    @Excel(name = "销售合价(元)")
    private String saleSumPrice;

    /** 标前成本合价(元) */
    @Excel(name = "标前成本合价(元)")
    private String costNegotiable;

    /** 设备单价(元) */
    @Excel(name = "设备单价(元)")
    private String devicePrice;

    /** 施工单价(元） */
    @Excel(name = "施工单价(元）")
    private String constructionPrice;

    /** 其他(元） */
    @Excel(name = "其他(元）")
    private String otherPrice;

    /** 税率(%) */
    @Excel(name = "税率(%)")
    private String rateTax;

    /** 创建人 */
    @Excel(name = "创建人")
    private String creater;

    /** 修改人 */
    @Excel(name = "修改人")
    private String updater;

    /** 用户名 */
    @Excel(name = "用户名")
    private String userName;

    /** 是否删除 */
    @Excel(name = "是否删除")
    private String isDelete;
    /** 变更数量 */
    @Excel(name = "变更数量")
    private String changeQuantity;
    /** 原始数量 */
    @Excel(name = "原始数量")
    private String originallyQuantity;
    /** 总采购数量 */
    private String totalPurchaseQuantity;

    /** 单价 */
    @Excel(name = "不含税单价")
    private BigDecimal unitPrice;

    /** 总价 */
    @Excel(name = "合同不含税合价")
    private BigDecimal totalPrice;

    /** 合同总价(含税) */
    @Excel(name = "合同总税金")
    private BigDecimal contractTotalTax;

    /** 设备税 */
    @Excel(name = "设备税率")
    private String equipmentTax;

    /** 施工税 */
    @Excel(name = "施工税率")
    private String constructionTax;

    /** 服务税 */
    @Excel(name = "服务税率")
    private String serviceTax;

    /** 综合单价 */
    @Excel(name = "综合不含税合价")
    private BigDecimal comprehensivePrice;

    /** 税前总价 */
    @Excel(name = "标前测算总税金")
    private BigDecimal preTotalTax;

    /** 业务ID */
    @Excel(name = "商机立项唯一ID")
    private String businessId;

    /** 是否组织 */
    @Excel(name = "主办协办类型1-主办，0-协办")
    private String isOrganization;

    private String changeType;
    private String fuwuPurchaseQuantity;
    private String shiPurchaseQuantity;
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("projectId", getProjectId())
            .append("manageId", getManageId())
            .append("changeId", getChangeId())
            .append("subheadingsNumber", getSubheadingsNumber())
            .append("subheadingsName", getSubheadingsName())
            .append("parentSubheadings", getParentSubheadings())
            .append("brandName", getBrandName())
            .append("modelNumber", getModelNumber())
            .append("unit", getUnit())
            .append("quantity", getQuantity())
            .append("salePrice", getSalePrice())
            .append("bidCostPrice", getBidCostPrice())
            .append("saleSumPrice", getSaleSumPrice())
            .append("costNegotiable", getCostNegotiable())
            .append("devicePrice", getDevicePrice())
            .append("constructionPrice", getConstructionPrice())
            .append("otherPrice", getOtherPrice())
            .append("rateTax", getRateTax())
            .append("remark", getRemark())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("creater", getCreater())
            .append("updater", getUpdater())
            .append("userName", getUserName())
            .append("isDelete", getIsDelete())
            .append("changeQuantity", getChangeQuantity())
            .append("totalPurchaseQuantity", getTotalPurchaseQuantity())
            .append("changeType", getChangeType())
            .toString();
    }
}
